package com.junsi.system.service;

import java.util.List;

import org.apache.ibatis.annotations.Param;

import com.junsi.common.core.domain.AjaxResult;
import com.junsi.system.domain.SysCity;
import com.junsi.system.vo.SysAreaCity;
import com.junsi.system.vo.SysCityVo;

/**
 * 省市区 服务层
 * 
 * @author ymx
 * @date 2019-05-30
 */
public interface ISysCityService 
{
	/**
     * 查询省市区信息
     * @param cityCode 省市区ID
     * @return 省市区信息
     */
	public SysCity selectCityById(Integer cityCode);
	
	/**
     * 查询省市区列表
     * @param city 省市区信息
     * @return 省市区集合
     */
	public List<SysCity> selectCityList(SysCity city);
	
	/**
	 * 查询省市区列表
	 * @return 省集合
	 */
	public List<SysCity> selectCityByPRo();
	
	/**
	 * 查询省市区列表
	 * @param proCode 市区信息
	 * @return 市区集合
	 */
	public List<SysCity> selectCityByCity(@Param("proCode") Integer proCode);
	
	/**
     * 新增省市区
     * @param city 省市区信息
     * @return 结果
     */
	public int insertCity(SysCity city);
	
	/**
     * 修改省市区
     * @param city 省市区信息
     * @return 结果
     */
	public int updateCity(SysCity city);
		
	/**
     * 删除省市区信息
     * @param ids 需要删除的数据ID
     * @return 结果
     */
	public int deleteCityByIds(String ids);
	
	/**
	 * 查询数量
	 * @param cityCode 城市编码
	 * @return 城市数量
	 */
	public List<SysAreaCity> selectCityNum(String areaCode, String cityCode);
	


	/**
	 * 编辑保存
	 * 
	 * @param city 省份信息
	 * @param cityCode 城市信息
	 * @return 结果
	 */
	public int editSave(SysCity city, String cityCode);


	/**
	 * 新增保存
	 * 
	 * @param areaCode 区域编码
	 * @param cityCode 城市编码
	 * @param name  区域名称
	 * @param areaName  所属大区
	 * @param status 状态
	 * @return 结果
	 */
	public AjaxResult addSave(String status, String areaName, String areaCode
			, String parentCode, String submitParentsCodes, String loginName);

	/**
	 * 查询数量
	 * @param proCode 城市编码
	 * @return 城市数量
	 */
	public List<SysCity> selectCity(Integer proCode,String areaCode);
	
	/**
	 * 过滤已选择城市数量
	 * 
	 * @return 城市数量
	 */
	
	public List<SysCityVo> cityList(String areaCode);

}
